#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

// int main()
// {
// 	int fd = open("log.txt", O_RDONLY);
// 	if (fd < 0)
// 	{
// 		perror("open failed");
// 		return 1;
// 	}
// 	while(1)
// 	{
// 		char buffer[64];
// 		int n = read(fd, buffer, sizeof(buffer)-1);
// 		if (n > 0)
// 		{
// 			buffer[n] = 0;
// 			printf("%s", buffer);
// 		}
// 		else if (n == 0)
// 		{
// 			break;
// 		}
// 	}
// 	return 0;
// }

//int main()
//{
//	umask(0);	//设置文件权限的掩码，如果没有设置使用系统中的文件权限掩码
//	int fd = open("log.txt", O_CREAT | O_WRONLY | O_TRUNC, 0666);	//对应C语言的w方式打开
//	//int fd = open("log.txt", O_CREAT | O_WRONLY | O_APPEND, 0666);	//对应C语言的a方式打开
//	
//	if (fd < 0)
//	{
//		perror("open failed");
//		return -1;
//	}
//	
//	const char *msg = "abcd\n";
//	int cnt = 1;
//	int a = 1234567;
//	while(cnt)
//	{
//		write(fd, msg, strlen(msg));
//		write(fd, &a, sizeof(a));
//		write(fd, msg, strlen(msg));
//		cnt--;
//	}
//	close(fd);
//	return 0;
//}

//int main()
//{
//	FILE * fp = fopen("log.txt", "w");
//	if (fp == NULL)
//	{
//		perror("fopen failed");
//		return 1;
//	}
//
//	const char *msg = "hello bit: ";
//	int cnt = 1;
//	while (cnt <= 10)
//	{
//		char buffer[1024];
//		snprintf(buffer, sizeof(buffer), "%s%d\n", msg, cnt++);
//
//		fwrite(buffer, strlen(buffer), 1, fp);
//	}
//
//
//	fclose(fp);
//	return 0;
//}

int main()
{
	close(1);
	int fd = open("log.txt", O_CREAT | O_WRONLY | O_APPEND, 0666);
	//库函数
	printf("fd: %d\n", fd);
	printf("hello xiaoc\n");
	printf("hello xiaoc\n");
	printf("hello xiaoc\n");
	fflush(stdout);
	//系统调用
	const char *msg = "hello write\n";
	write(fd, msg, strlen(msg));
	close(fd);
	return 0;
}
